package com.miniblog.user.api.client;

import com.miniblog.common.utils.Msg;
import com.miniblog.user.api.client.impl.UserClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;


/**
 * 路径：com.miniblog.user.api.client.UserClient.java
 * 类名：UserClient.java
 * 功能：用户信息api
 * 创建人：typ
 * 创建时间：2019/10/21 21:46
 */
@FeignClient(name = "user", contextId = "userapi", fallback = UserClientFallback.class)
public interface UserClient {

    /**
     * @methodName：qryUserIdByUser
     * @description：缓存中获取用户信息
     * @author：tanyp
     * @dateTime：2020/1/12 15:55
     * @Params： [userId]
     * @Return： com.miniblog.common.utils.Msg
     * @editNote：
     */
    @GetMapping("qryUserIdByUser")
    Msg qryUserIdByUser(@RequestParam String userId);

    /**
     * @MethodName： userList
     * @Description：获取用户信息列表
     * @Author： tanyp
     * @Date： 2020/1/8 15:31
     * @Params： [pageNum, pageSize, search]
     * @Return： com.miniblog.common.utils.Msg
     * @Reviser：
     */
    @GetMapping("userList")
    Msg userList(@RequestParam(required = false, defaultValue = "1") Integer pageNum,
                 @RequestParam(required = false, defaultValue = "10") Integer pageSize,
                 @RequestParam(required = false, defaultValue = "") String search);

    /**
     * @methodName：logout
     * @description：退出
     * @author：tanyp
     * @dateTime：2020/1/12 16:03
     * @Params： [userId]
     * @Return： com.miniblog.common.utils.Msg
     * @editNote：
     */
    @GetMapping("logout")
    Msg logout(@RequestParam String userId);

}
